package com.overlook.somniferous.user.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 用户组信息
 */
@ApiModel(description = "用户组信息")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "`group`")
public class Group implements Serializable {
    @TableField(value = "id")
    @ApiModelProperty(value = "")
    @Size(max = 100, message = "最大长度要小于 100")
    @NotBlank(message = "不能为空")
    private String id;

    /**
     * 用户组名称
     */
    @TableField(value = "group_name")
    @ApiModelProperty(value = "用户组名称")
    @Size(max = 100, message = "用户组名称最大长度要小于 100")
    @NotBlank(message = "用户组名称不能为空")
    private String groupName;

    /**
     * 用户组等级
     */
    @TableField(value = "group_level")
    @ApiModelProperty(value = "用户组等级")
    @Size(max = 200, message = "用户组等级最大长度要小于 200")
    @NotBlank(message = "用户组等级不能为空")
    private String groupLevel;

    /**
     * 上级用户组
     */
    @TableField(value = "parent_group")
    @ApiModelProperty(value = "上级用户组")
    @Size(max = 200, message = "上级用户组最大长度要小于 200")
    @NotBlank(message = "上级用户组不能为空")
    private String parentGroup;

    /**
     * 用户组描述
     */
    @TableField(value = "description")
    @ApiModelProperty(value = "用户组描述")
    @Size(max = 100, message = "用户组描述最大长度要小于 100")
    private String description;

    @TableField(value = "created_time")
    @ApiModelProperty(value = "")
    @Size(max = 100, message = "最大长度要小于 100")
    private String createdTime;

    @TableField(value = "create_by")
    @ApiModelProperty(value = "")
    @Size(max = 100, message = "最大长度要小于 100")
    private String createBy;

    @TableField(value = "update_by")
    @ApiModelProperty(value = "")
    @Size(max = 100, message = "最大长度要小于 100")
    private String updateBy;

    @TableField(value = "update_time")
    @ApiModelProperty(value = "")
    @Size(max = 100, message = "最大长度要小于 100")
    private String updateTime;

    private static final long serialVersionUID = 1L;
}